home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / flexcat1_4.lha / flexcat / lib / Oberon-A.sd < prev    next >
Text File  |  1994-10-31  |  2KB  |  88 lines

  1. ##stringtype Oberon
  2. ##shortstrings
  3. MODULE %f3;
  4. (****************************************************************
  5.    This file was created automatically by `FlexCat V1.4'
  6.    from `%f0'.
  7.    Do NOT edit by hand!
  8.    Oberon-A source description C 1994 by Albert Weinert
  9.    Using with Oberon-A Interfaces for AmigaOS Release 3.1
  10. ****************************************************************)
  11.  
  12. (* $P- *)
  13.  
  14. IMPORT
  15.   lo := Locale, e := Exec, u := Utility, y := SYSTEM;
  16.  
  17. CONST
  18.   builtinlanguage = %l;
  19.   version = %v;
  20.  
  21. CONST
  22.   %i* = %d;
  23.  
  24. TYPE
  25.   AppString = RECORD;
  26.      id  : LONGINT;
  27.      str : e.STRPTR;
  28.   END;
  29.   AppStringArray = ARRAY %n OF AppString;
  30.  
  31. VAR
  32.   AppStrings : AppStringArray;
  33.   catalog : lo.CatalogPtr;
  34.  
  35.   PROCEDURE SetStrings;
  36.     BEGIN
  37.       AppStrings[%e].id := %i; AppStrings[%e].str := y.ADR( %s );
  38.     END SetStrings;
  39.  
  40.   PROCEDURE CloseCatalog*();
  41.     BEGIN
  42.       IF catalog # NIL THEN lo.base.CloseCatalog (catalog); catalog:=NIL END;
  43.    END CloseCatalog;
  44.  
  45.   PROCEDURE OpenCatalog*(loc:lo.LocalePtr; language:ARRAY OF CHAR);
  46.     VAR Tag : ARRAY 4 OF u.TagItem;
  47.     BEGIN
  48.       CloseCatalog();
  49.       IF (catalog = NIL) & (lo.base # NIL) THEN
  50.         Tag[0].tag := lo.ocBuiltInLanguage; Tag[0].data := y.ADR( builtinlanguage );
  51.         Tag[1].tag := u.tagSkip;          Tag[1].data := y.ADR( language );
  52.         Tag[2].tag := lo.ocVersion;         Tag[2].data := version;
  53.         Tag[3].tag := u.tagDone;
  54.  
  55.         IF language # "" THEN
  56.           Tag[1].tag:= lo.ocLanguage;
  57.         END;
  58.         catalog := lo.base.OpenCatalogA (loc, "%b.catalog", Tag);
  59.       END;
  60.     END OpenCatalog;
  61.  
  62.   PROCEDURE GetString* (num: LONGINT): e.STRPTR;
  63.     VAR
  64.       i: LONGINT;
  65.       default: e.STRPTR;
  66.     BEGIN
  67.       i := 0; WHILE (i < %n) & (AppStrings[i].id # num) DO INC (i) END;
  68.  
  69.       IF i # %n THEN
  70.         default := AppStrings[i].str;
  71.       ELSE
  72.         default := NIL;
  73.       END;
  74.  
  75.       IF catalog # NIL THEN
  76.         RETURN lo.base.GetCatalogStr (catalog, num, default^);
  77.       ELSE
  78.         RETURN default;
  79.       END;
  80.     END GetString;
  81.  
  82. BEGIN
  83.   catalog := NIL;
  84.   lo.OpenLib( FALSE );
  85.   SetStrings;
  86. END %f3.
  87.  
  88.